#!/usr/bin/env node
//Node CLI 应用入口文件必须要有这样的文件头
//如果是 Linux 或者 macOS 系统还需要修改此文件的读写权限为 755
//具体通过 chmod 755 cli.js
const fs = require('fs')
const path = require('path')
const inquirer = require('inquirer')
const ejs = require('ejs')

inquirer.prompt([
    {
        type: 'input',
        name: 'name',
        message: 'project name?',
        default: 'my-project'
    },
    {
        type: 'input',
        name: 'desc',
        message: 'project description?'
    },
]).then(answers => {
    // 根据用户回答的结果生成文件
    // 拿到模板文件
    const tmplDir = path.join(__dirname, 'templates')
    //拿到目标文件
    const destDir = process.cwd()
    //将模版文件全部转换到目标文件
    fs.readdir(tmplDir, (err, files) => {
        if(err) throw err
        files.forEach(file => {
            // file  文件相对于 templates 目录的相对路径
            //通过模版引擎渲染文件
            ejs.renderFile(path.join(tmplDir, file), answers, (err,result) => {
                if(err) throw err
                // 将结果写入目标文件
                fs.writeFileSync(path.join(destDir,file), result)
            })
        })
    })
})